package command;

import moteur.Impl_Moteur;
import enregistrement.Enregistrable;
import enregistrement.Enregistreur;
import enregistrement.Impl_Memento;
import enregistrement.Memento;

/***********************************************************************
 * Module: Coller.java Author: 12008505 Purpose: Defines the Class Coller
 ***********************************************************************/

public class Coller implements Command, Enregistrable {
	public Impl_Moteur moteur;
	private Memento memento;
	public Enregistreur enregistreur;

	public Coller(Impl_Moteur moteur, Enregistreur enregistreur) {
		this.moteur = moteur;
		this.enregistreur = enregistreur;

	}

	public Coller() {

	}

	public void execute() {

		boolean etatE = enregistreur.getEtat();
		if (etatE == true) {
			enregistreur.ajouterCommand(creerMemento());
			moteur.coller();
		} else {

			moteur.coller();
		}
	}

	public Memento creerMemento() {
		int position = moteur.getSelection().getDebut();

		return new Impl_Memento(moteur, position, this);

	}

	public void setMemento(Memento m) {
		int debut = m.getEtatMoteur().getSelection().getDebut();

		moteur.getSelection().setDebut(debut);

	}

}
